package io;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;

/**
 * JAVA IO ：
 * java io，可以让我们用标准的读写操作来完成对不同设备的读写数据工作
 * java 将IO 按照方向划分为输入于输出，参照点是我们写的程序
 * 输入：用来读取数据的，是从外界到程序的方向，用于获取数据。
 * 输出：用来写出数据的，是从程序到外界的方向，用于发送数据。
 * java将IO 比喻为”流，即：stream。“就像生活中的”电流“，”水流“一样，它是以同一个方向顺序
 * 移动的过程，只不过这里流动的字节（2进制数据）
 * 所以咋IO中有输入流和输出流之分，我们理解他们是程序与另一端的”管道“，用于获取或发送
 * 数据到另一端
 *
 * Java定义类两个超类（抽象类）
 * java。io。InputStream：所有字节输入流的超类，其中定义类读取数据的方法，因此将来不管读取的是什么
 * 设备（链接该设备的流）都有这些读取的方法，因此我们可以用相同的方法读取不同设备中的数据！
 *
 *  java 。io。OutputStream：所有字节输出流的超类，其中定义类写出数据的方法。
 * 文件流
 * 文件流是一对低级流，用于连接程序与（硬盘）的”管道“。负责读写文件数据，
 *
 * java,IO.FileOutputStream和java。io。FileInputStream
 *
 */
public class FOSDemo {
    public static void main(String[] args) throws IOException {
        /*
        构造方法、
         FileOutputStream（File file）
         FileOutputStream（String path)
         以上两种方式创建文件的文件流失覆盖模式，即：在创建文件流时若指针指定的文件已经存在
         则会将该文件原有的内容抹除，之后通过当前流写出的内容都会保留在文件中。

         FileOutputStream（File file， boolean append）
         FileOutputStream（String path ， boolean， append)
         文件流有重载的构造方法，允许我们传入一个boolean参数，该值如果为true，则
         文件流创建时是追加模式，即：创建文件流时若指定文件存在，则源文件内容全部保留，
         通过当前流写入的新内容都会被顺序追加到文件！
         */
      // FileOutputStream fos =new FileOutputStream("fos.txt");
        FileOutputStream fos =new FileOutputStream("fos.txt",true);
        /* String line="睿智半夜出来找乐子，潇洒了一晚上：";
        byte[]data=line.getBytes("UTF-8");
        fos.write(data);
        line="结果没有带银子，被8号技师报警带走了";
        fos.write(line.getBytes("UTF-8"));*/
        //fos.write("睿智玩小姐被报警，蹲在监狱里吃泡面".getBytes("UTF-8"));
        fos.write("，很是惆怅呀".getBytes("UTF-8"));
        System.out.println("搞定");
        fos.close();
    }

}
